class Solution {
public:
    std::array<int,10000> ne;
    
    int LastRemaining_Solution(int n, int m) {
        // write code here

        if(n==0) return -1;
        for(int i=0;i<n-1;i++)
        { 
            ne[i]=i+1;
        }
        ne[n-1]=0;
        int id=n-1;//当前下标
        int pos=0;
        int k=n-1;
        int o=m;
        //循环报数
        while(k--)
        {
            while(o--)
            {
                //往下走
                pos=id;
                id=ne[id];
            }
            o=m;
            ne[pos]=ne[id];
            id=pos;
        }
        return id;
    }
};